/**
 * @param {string} path
 * @returns {Boolean}
 */
export function isExternal(path) {
  return /^(https?:|mailto:|tel:)/.test(path)
}

// 纯数字
export const REGEX_NUMBER = /^[0-9]*$/

// 纯字母
export const REGEX_CHARTS = /^[A-Za-z]+$/

// 正整数，包含0
export const REGEX_INTEGER_NUMBER = /^([1-9]\d*|[0]{1,1})$/

// 是否是两位小数
export const REGEX_DECIMAL = /^\d+(\.\d{1,2})?$/

// 排序（1-9999）
export const REGEX_SORT = /^[1-9]\d{0,3}$/

// 统一公司信用代码
export const REGEX_CREDITCODE = /^[A-Z0-9]{18}$/

// 只允许数字及英文字母
export const REGEX_NUMBER_LETTER = /^[A-Za-z0-9]+$/

// 价格（1-9999）
export const REGEX_NUM_MIN = /^[1-9]\d{0,3}(?:\.\d{1,2})?$/

// 价格（1-999999）
export const REGEX_NUM_MAX = /^[1-9]\d{0,5}(?:\.\d{1,2})?$/

// 价格（0-9999）
export const REGEX_NUM_SMALL = /^[0-9]\d{0,3}(?:\.\d{1,2})?$/

// 密码 (6-16位需同时包含英文字母和数字)
export const REGEX_PASSWORD = /^(?!([a-zA-Z]+|\d+)$)[a-zA-Z\d]{6,16}$/

// 密码
export const REGEX_PASSWORD_CCOMPLEX = /^(?![\d]+$)(?![a-zA-Z]+$)(?![^\da-zA-Z]+$).{6,16}$/g

// 联系电话
export const REGEX_CONTACTS_MOBILE = /(^([1][3,4,5,6,7,8,9])\d{9}$)|(^(\d{3,4}-)?\d{7,8}$)/

// 邮箱
export const REGEX_EMAIL =
  /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/

// 中文
export const REGEX_CHINESE =
  /^(?:[\u3400-\u4DB5\u4E00-\u9FEA\uFA0E\uFA0F\uFA11\uFA13\uFA14\uFA1F\uFA21\uFA23\uFA24\uFA27-\uFA29]|[\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0])+$/

// 身份证号
export const REGEX_ID_CARD =
  /^[1-9]\d{5}(?:18|19|20)\d{2}(?:0[1-9]|10|11|12)(?:0[1-9]|[1-2]\d|30|31)\d{3}[\dXx]$/

// 价格保留两位小数
export const REGEX_PRICE_NUMBER =
  /(?:^[1-9]([0-9]+)?(?:\.[0-9]{1,2})?$)|(?:^(?:0)$)|(?:^[0-9]\.[0-9](?:[0-9])?$)/

// 校验正整数
export const REGEX_POSITIVE_INTEGER = /^\+?[1-9]\d*$/
